using System;
using System.Threading;
using ServiceStack.DesignPatterns.Command;

namespace ServiceStack.Common.Support
{
	public class ActionExecHandler : ICommandExec
	{
		private readonly Action action;
		private readonly AutoResetEvent waitHandle;

		public ActionExecHandler(Action action, AutoResetEvent waitHandle)
		{
			this.action = action;
			this.waitHandle = waitHandle;
		}

		public bool Execute()
		{
			action();
			waitHandle.Set();
			return true;
		}
	}
}